
package app;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

/**
 * Klasa zarządzająca plikami z trasami znajdującymi się w folderze "Tracks"
 * @author morohusky
 */
public class TrackFile {
    
    /**
     * Wczytuje listy plików z trasami z folderu
     * @param path Ścieżka do folderu z trasami
     * @return Lista ścieżek do plików z trasami z folderu
     */
    public ArrayList<String> findTracks(String path) {
        File directory = new File(path);
        
        ArrayList<String> result = null;
        try {
            result = loadFiles(directory);
        }
        catch (IOException e) {
            System.err.println("Nie udało się załadować plików z podanej lokalizacji");
            System.err.println(e.getStackTrace());
        }
        
        return result;
    }
    
    /**
     * Przeszukuje folder, aby znaleźć wszystkie trasy
     * @param directory Folder do przeszukania
     * @return Lista ścieżek do plików z trasami
     * @throws IOException Źle podana lokalizacja folderu
     */
    private ArrayList<String> loadFiles(File directory) throws IOException {
        ArrayList<String> result = new ArrayList();
        File[] files = directory.listFiles();
        
        for (File file : files) {
            if(file.isFile()) {
                String fileFullName = file.getName();
                int dotIdx = fileFullName.lastIndexOf('.');
                
                String onlyName = fileFullName.substring(0, dotIdx);
                result.add(onlyName);
            }
        }
        
        return result;
    }
}
